// @ts-check

import eslint from '@eslint/js';
import { config, configs } from 'typescript-eslint';

export default config(
  eslint.configs.recommended,
  ...configs.recommendedTypeChecked,
  ...configs.strictTypeChecked,
  ...configs.stylisticTypeChecked,
  {
    files: ['packages/*/src/**/*.ts'],
    languageOptions: {
      parserOptions: {
        project: './tsconfig.eslint.json',
        tsconfigRootDir: import.meta.dirname,
      },
    },
    rules: {
      '@typescript-eslint/consistent-generic-constructors': 'off',
      '@typescript-eslint/no-extraneous-class': 'off',
    }
  },
);
